/*
 * StorageModule.h
 *
 *  Created on: 2011-10-8
 *      Author: stargui
 */

#ifndef STORAGEMODULE_H_
#define STORAGEMODULE_H_

namespace PROTOCOL
{
#define  MODULE_STORAGE                            "STORM"	//存储模块
#define  STORAGEGETSTORAGEINFO                     "GETSTORAGEINFO"//获取存储设备的空间信息
#define  STORAGESETCONTROLSTORAGE                  "SETCONTROLSTORAGE"//管理存储设备
#define  STORAGEGETCALENDAR                        "GETCALENDAR" //月历查询
#define  STORAGEQUERYFILELIST                      "QUERYFILELIST" //查询记录
#define  STORAGESETLOCK                            "SETLOCK"	//枷锁、解锁

#define  STORAGESTORAGETYPE                        "STORAGETYPE"			//0-硬盘 1-U盘 2-SD卡
#define  STORAGESTORAGECOUNT                       "STORAGECOUNT"		//所有存储设备的数量
#define  STORAGESTORAGEUNIT                        "STORAGEUNIT"			//单位 0:B 1:KB 2:MB 3:GB 4:TB
#define  STORAGESTORAGEINDEX							"STORAGEINDEX" 		//所有存储器的逻辑编号
#define  STORAGESTORAGESTATUS							"STORAGESTATUS"		//0-不存在，1-未格式化，2-正常，3-损坏,4-正在录像, 5-正在格式化
#define  STORAGESTORAGELASTSIZE						"STORAGELASTSIZE"	//每个存储器剩余大小
#define  STORAGESTORAGETOTALSIZE						"STORAGETOTALSIZE"	//每个存储器总大小
#define  STORAGECMDTYPE									"CMDTYPE"				//0:可读写 1:只读 2:格式化 3:清楚数据 4:设置冗余
#define  STORAGECALENDARTYPE							"CALENDARTYPE"		//1:根据年月查某一个月的日历 2:根据年查某年的月历


//CALENDARTYPE 为0时2011092FFFFFFF:2011年9月份每天都有录像文件（201109表示年月，2FFFFFFF表示BIT0-BIT30为1日-31日，BIT位为1表示有效，否则为0）
//CALENDARTYPE 为1时2011092FFFFFFF: QUERYTIME中当月中1-30天都有录像（BIT0-BIT30表示1号-30号，BIT位为1有效，否则无效）
#define  STORAGECALENDER								"CALENDER"

#define  STORAGEQUERYTIME								"QUERYTIME"

#define  STORAGECOUNT									"COUNT"

/*查询文件的类型
bit0位:普通文件 （视频文件）
bit1位:报警文件
bit2位:图片
bit3位:打卡记录*/
#define  STORAGEFILETYPE							"FILETYPE"


#define  STORAGESTREAMTYPE								"STREAMTYPE"			//0：子码流 1：主码流 2：手机码流

#define  STORAGECHANNEL									"CHANNEL"	//通道号
#define  STORRECORDCHANNEL								"RECORDCHANNEL"//应答通道号
#define  STORAGESTARTTIME								"STARTTIME"//查询的起始时间
#define  STORAGEENDTIME									"ENDTIME"	//查询的结束时间
#define  STORAGECARDNUM									"CARDNUM"	//卡号
#define  STORAGECARDQUERYTYPE							"CARDQUERYTYPE"//卡交易情况 见CARD_TYPE
#define  STORAGEEXCEPTION								"EXCEPTION"	//异常情况 0：ALL 1：吞钞 2：吞卡

#define  STORAGESENDFILECOUNT							"SENDFILECOUNT"	//本次发送的文件个数
#define  STORAGELASTRECORD								"LASTRECORD"		//是否是本次查询指令的最后一次应答发送0：不是， 1，是
#define  STORAGERECORDID									"RECORDID"

#define  STORAGERECORDSIZE								"RECORDSIZE"

#define  RECORDSEGMENT									"RECORD"
#define  STORAGESENDTIME								"SENDTIME"

#define STORAGELOCKTYPE									"LOCKTYPE"//0:解锁 1:加锁
#define STORAGEFILETYPE									"FILETYPE" //查询文件的类型 bit位操作 bit0位:普通文件 （视频文件）bit1位:报警文件 bit2位:图片  bit3位:打卡记录

#define STORAGEFILENAME									"FILENAME"	//文件名


//参数
#define STORAGRMEMP										"MEMP"		//存储器的参数MEMORYPARAM
#define STORAGROVERW									"OVERW"	//硬盘覆盖开关状态 0：关闭 1：开启
#define STORAGEOVERT									"OVERT"	//覆盖方式 0：按天覆盖 1：按容量覆盖
#define STORAGESTORT									'STORT'	//存储设备类型 0：正常 1：冗余 2：临时
#define STORAGEMUR										"MUR"		//是否开启多存储设备录像 0：关闭 1：开启
#define STORAGEOVD										"OVD"//覆盖有效天数，整数



typedef enum _CARD_TYPE
{
	ALL_CARDTYPE	= 0 ,//0：ALL
	QUERY_CARDTYPE,//1：查询
	GETCASH_CARDTYPE,//2：取款
	EDIT_CARDTYPE,//3：改密码
	TRANSFER_CARDTYPE,//4：转账
	DEPOSIT_CARDTYPE,//5：存款
	NO_CARDTYPE,//6：无卡查询
	NOCARDDEPOSIT_CARDTYPE,//7：无卡存款
	OTHER_CARD_TYPE,//8：其他
}CARD_TYPE;


#define STORAGEGETCALENDARLOG					"GETCALENDARLOG"//查询日志日历
#define STORAGECTYPE								"CTYPE"//查询条件
#define STORAGEQTIME								"QTIME"//查询时间条件
#define STORAGECER								"CER"//日历存储

}
#endif /* STORAGEMODULE_H_ */
